﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CI.Caja.DL;
using CI.Caja.BE;

namespace CI.Caja.BL
{
    public class BL_NotaDebito: IBL_NotaDebito
    {
        IDA_NotaDebito NotaDebitoDA = null;

        public BE.BE_Nota_Debito RegistrarNotaDebito(int idNotaDebito, int idCierreCaja, int idTipoDiferencia, decimal numMonto, string txtObservacion)
        {
            BE_Nota_Debito notaDebitoNueva = new BE_Nota_Debito();

            try
            {
                notaDebitoNueva.IdNotaDebito = idNotaDebito;
                notaDebitoNueva.IdCierreCaja = idCierreCaja;
                notaDebitoNueva.IdTipoDiferencia = idTipoDiferencia;
                notaDebitoNueva.NumMonto = numMonto;
                notaDebitoNueva.TxtObservacion = txtObservacion;
                
                return NotaDebitoDA.RegistrarNotaDebito(notaDebitoNueva);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public BE.BE_Nota_Debito ActualizarNotaDebito(int idNotaDebito, int idCierreCaja, int idTipoDiferencia, decimal numMonto, string txtObservacion)
        {
            throw new NotImplementedException();
        }

        public BE.BE_Nota_Debito ObtenerNotaDebito(int idNotaDebito)
        {
            try
            {
                return NotaDebitoDA.ObtenerNotaDebito(idNotaDebito);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public ICollection<BE.BE_Nota_Debito> ListarNotaDebito()
        {
            try
            {
                return NotaDebitoDA.ListarNotaDebito();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public string ObtenerCodigo()
        {
            try
            {
                return NotaDebitoDA.ObtenerCodigo();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
}
